/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tablero;

import java.util.List;

/**
 *
 * @author Joshua
 */
public class prueba {
    //public String jugador;

    public Tablero Ventana;

    public void generartablero(List<Hit> lista, Tablero ventana) {
        int tamano = lista.size();
        Ventana = ventana;
        for (int i = 0; i < tamano; i++) {
            String[] arreglo = lista.get(i).getHitSeparated();
            //jugador="b";
            System.out.println(arreglo[0]);
            // ejecutarmovimiento(arreglo[0]);
            if (arreglo[1] != null) {
                //jugador="n";
                System.out.println(arreglo[1]);
                //  ejecutarmovimiento(arreglo[1]);
            }
        }
    }

    public void ejecutarmovimiento(String movimiento, Tablero ventana, String jugador) {
        String ficha = movimiento.substring(0, 1);
        Ventana = ventana;
        if (ficha.equals("R") || ficha.equals("B") || ficha.equals("K")
                || ficha.equals("N") || ficha.equals("Q")) {
            int columnafinal;
            int filafinal;
            if (movimiento.substring(1, 1).equals("x")) {
                columnafinal = conversion(movimiento.substring(2, 3));
                filafinal = 8 - Integer.parseInt(movimiento.substring(3, 4));
            } else {
                columnafinal = conversion(movimiento.substring(1, 2));
                filafinal = 8 - Integer.parseInt(movimiento.substring(2, 3));
            }
            int x = 0;
            int y = 0;
            System.out.println(ficha + jugador);
            for (int i = 0; i < 8; i++) {
                for (int j = 0; j < 8; j++) {
                    if (Ventana.Tablero[i][j] != null
                            && Ventana.Tablero[i][j].color.equals(jugador)
                            && Ventana.Tablero[i][j].tipo.equals(ficha)) {
                        y = i;
                        x = j;
                        System.out.println("se encontro ficha en: " + i + " " + j);
                        System.out.println("se movera a: " + columnafinal + " " + filafinal);

                        Movimientos mov = new Movimientos();
                        if (mov.movimientos(ficha, jugador, columnafinal, filafinal, j, i, Ventana.Tablero)) {
                            Ventana.Tablero[filafinal][columnafinal] = new Ficha(ficha + jugador);
                            Ventana.Tablero[filafinal][columnafinal].setmovida();
                            Ventana.Tablero[i][j] = null;
                            Ventana.AgregarImagen("Imagenes/" + ficha + jugador, columnafinal, filafinal);
                            Ventana.AgregarImagen("Imagenes/", j, i);
                            break;
                        }
                    }
                }
            }
        } else if (ficha.equals("O")) {
            if (movimiento.equals("O-O")) {
                if (jugador.equals("b")) {
                    Ventana.Tablero[7][6] = new Ficha("K" + jugador);
                    Ventana.Tablero[7][6].setmovida();
                    Ventana.Tablero[7][4] = null;
                    Ventana.AgregarImagen("Imagenes/" + "K" + jugador, 6, 7);
                    Ventana.AgregarImagen("Imagenes/", 4, 7);
                    Ventana.Tablero[7][5] = new Ficha("R" + jugador);
                    Ventana.Tablero[7][5].setmovida();
                    Ventana.Tablero[7][7] = null;
                    Ventana.AgregarImagen("Imagenes/" + "R" + jugador, 5, 7);
                    Ventana.AgregarImagen("Imagenes/", 7, 7);
                } else {
                    Ventana.Tablero[0][6] = new Ficha("K" + jugador);
                    Ventana.Tablero[0][6].setmovida();
                    Ventana.Tablero[0][4] = null;
                    Ventana.AgregarImagen("Imagenes/" + "K" + jugador, 6, 0);
                    Ventana.AgregarImagen("Imagenes/", 4, 0);
                    Ventana.Tablero[0][5] = new Ficha("R" + jugador);
                    Ventana.Tablero[0][5].setmovida();
                    Ventana.Tablero[0][7] = null;
                    Ventana.AgregarImagen("Imagenes/" + "R" + jugador, 5, 0);
                    Ventana.AgregarImagen("Imagenes/", 7, 0);
                }
            } else if (movimiento.equals("O-O-O")){
                if (jugador.equals("b")) {
                    Ventana.Tablero[7][2] = new Ficha("K" + jugador);
                    Ventana.Tablero[7][2].setmovida();
                    Ventana.Tablero[7][4] = null;
                    Ventana.AgregarImagen("Imagenes/" + "K" + jugador, 2, 7);
                    Ventana.AgregarImagen("Imagenes/", 4, 7);
                    Ventana.Tablero[7][3] = new Ficha("R" + jugador);
                    Ventana.Tablero[7][3].setmovida();
                    Ventana.Tablero[7][0] = null;
                    Ventana.AgregarImagen("Imagenes/" + "R" + jugador, 3, 7);
                    Ventana.AgregarImagen("Imagenes/", 0, 7);
                } else {
                    Ventana.Tablero[0][2] = new Ficha("K" + jugador);
                    Ventana.Tablero[0][2].setmovida();
                    Ventana.Tablero[0][4] = null;
                    Ventana.AgregarImagen("Imagenes/" + "K" + jugador, 2, 0);
                    Ventana.AgregarImagen("Imagenes/", 4, 0);
                    Ventana.Tablero[0][5] = new Ficha("R" + jugador);
                    Ventana.Tablero[0][5].setmovida();
                    Ventana.Tablero[0][0] = null;
                    Ventana.AgregarImagen("Imagenes/" + "R" + jugador, 3, 0);
                    Ventana.AgregarImagen("Imagenes/", 0, 0);
                }
            }
        } else {
            if (movimiento.substring(1, 2).equals("x")) {
                int columnainicial = conversion(movimiento.substring(0, 1));
                int columnafinal = conversion(movimiento.substring(2, 3));
                int filafinal = 8 - Integer.parseInt(movimiento.substring(3, 4));
                if (jugador.equals("b")) {
                    Ventana.Tablero[filafinal][columnafinal] = new Ficha(ficha + jugador);
                    Ventana.Tablero[filafinal][columnafinal].setmovida();
                    Ventana.Tablero[filafinal + 1][columnainicial] = null;
                    Ventana.AgregarImagen("Imagenes/" + "P" + jugador, columnafinal, filafinal);
                    Ventana.AgregarImagen("Imagenes/", columnainicial, filafinal + 1);
                } else {
                    Ventana.Tablero[filafinal][columnafinal] = new Ficha(ficha + jugador);
                    Ventana.Tablero[filafinal][columnafinal].setmovida();
                    Ventana.Tablero[filafinal - 1][columnainicial] = null;
                    Ventana.AgregarImagen("Imagenes/" + "P" + jugador, columnafinal, filafinal);
                    Ventana.AgregarImagen("Imagenes/", columnainicial, filafinal - 1);
                }
            } else {
                int columnafinal = conversion(movimiento.substring(0, 1));
                int filafinal = 8 - Integer.parseInt(movimiento.substring(1, 2));
                if (jugador.equals("b")) {
                    if (Ventana.Fichas[filafinal + 1][columnafinal].equals("Pb")) {
                        Ventana.Tablero[filafinal][columnafinal] = new Ficha("P" + jugador);
                        Ventana.Tablero[filafinal][columnafinal].setmovida();
                        Ventana.Tablero[filafinal + 1][columnafinal] = null;
                        Ventana.AgregarImagen("Imagenes/" + "P" + jugador, columnafinal, filafinal);
                        Ventana.AgregarImagen("Imagenes/", columnafinal, filafinal + 1);
                    } else if (Ventana.Fichas[filafinal + 2][columnafinal].equals("Pb")) {
                        Ventana.Tablero[filafinal][columnafinal] = new Ficha("P" + jugador);
                        Ventana.Tablero[filafinal][columnafinal].setmovida();
                        Ventana.Tablero[filafinal + 2][columnafinal] = null;
                        Ventana.AgregarImagen("Imagenes/" + "P" + jugador, columnafinal, filafinal);
                        Ventana.AgregarImagen("Imagenes/", columnafinal, filafinal + 2);
                    }
                } else if (jugador.equals("n")) {
                    if (Ventana.Fichas[filafinal - 1][columnafinal].equals("Pn")) {
                        Ventana.Tablero[filafinal][columnafinal] = new Ficha("P" + jugador);
                        Ventana.Tablero[filafinal][columnafinal].setmovida();
                        Ventana.Tablero[filafinal - 1][columnafinal] = null;
                        Ventana.AgregarImagen("Imagenes/" + "P" + jugador, columnafinal, filafinal);
                        Ventana.AgregarImagen("Imagenes/", columnafinal, filafinal - 1);
                    } else if (Ventana.Fichas[filafinal - 2][columnafinal].equals("Pn")) {
                        Ventana.Tablero[filafinal][columnafinal] = new Ficha("P" + jugador);
                        Ventana.Tablero[filafinal][columnafinal].setmovida();
                        Ventana.Tablero[filafinal - 2][columnafinal] = null;
                        Ventana.AgregarImagen("Imagenes/" + "P" + jugador, columnafinal, filafinal);
                        Ventana.AgregarImagen("Imagenes/", columnafinal, filafinal - 2);
                    }
                }
            }
        }
    }

    public int conversion(String letra) {
        if (letra.equals("a")) {
            return 0;
        } else if (letra.equals("b")) {
            return 1;
        } else if (letra.equals("c")) {
            return 2;
        } else if (letra.equals("d")) {
            return 3;
        } else if (letra.equals("e")) {
            return 4;
        } else if (letra.equals("f")) {
            return 5;
        } else if (letra.equals("g")) {
            return 6;
        } else {
            return 7;
        }

    }
}
